from __future__ import annotations
import dartpy.collision
import dartpy.constraint
import dartpy.dynamics
import numpy
import typing
__all__: list[str] = ['CollisionDetectorType', 'World']
class CollisionDetectorType:
    """
    Members:
    
      DART
    
      FCL
    
      BULLET
    
      ODE
    """
    BULLET: typing.ClassVar[CollisionDetectorType]  # value = <CollisionDetectorType.BULLET: 2>
    DART: typing.ClassVar[CollisionDetectorType]  # value = <CollisionDetectorType.DART: 0>
    FCL: typing.ClassVar[CollisionDetectorType]  # value = <CollisionDetectorType.FCL: 1>
    ODE: typing.ClassVar[CollisionDetectorType]  # value = <CollisionDetectorType.ODE: 3>
    __members__: typing.ClassVar[dict[str, CollisionDetectorType]]  # value = {'DART': <CollisionDetectorType.DART: 0>, 'FCL': <CollisionDetectorType.FCL: 1>, 'BULLET': <CollisionDetectorType.BULLET: 2>, 'ODE': <CollisionDetectorType.ODE: 3>}
    def __eq__(self, other: typing.Any) -> bool:
        ...
    def __getstate__(self) -> int:
        ...
    def __hash__(self) -> int:
        ...
    def __index__(self) -> int:
        ...
    def __init__(self, value: int) -> None:
        ...
    def __int__(self) -> int:
        ...
    def __ne__(self, other: typing.Any) -> bool:
        ...
    def __repr__(self) -> str:
        ...
    def __setstate__(self, state: int) -> None:
        ...
    def __str__(self) -> str:
        ...
    @property
    def name(self) -> str:
        ...
    @property
    def value(self) -> int:
        ...
class World:
    @typing.overload
    def __init__(self) -> None:
        ...
    @typing.overload
    def __init__(self, name: str) -> None:
        ...
    @typing.overload
    def __init__(self) -> None:
        ...
    @typing.overload
    def __init__(self, name: str) -> None:
        ...
    def addSimpleFrame(self, frame: dartpy.dynamics.SimpleFrame) -> str:
        ...
    def addSkeleton(self, skeleton: dartpy.dynamics.Skeleton) -> str:
        ...
    def bake(self) -> None:
        ...
    @typing.overload
    def checkCollision(self) -> bool:
        ...
    @typing.overload
    def checkCollision(self, option: dartpy.collision.CollisionOption) -> bool:
        ...
    @typing.overload
    def checkCollision(self, option: dartpy.collision.CollisionOption, result: dartpy.collision.CollisionResult) -> bool:
        ...
    def clone(self) -> World:
        ...
    def getConstraintSolver(self) -> dartpy.constraint.ConstraintSolver:
        ...
    def getGravity(self) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
        ...
    def getIndex(self, index: int) -> int:
        ...
    def getLastCollisionResult(self) -> dartpy.collision.CollisionResult:
        ...
    def getCollisionDetector(self) -> dartpy.collision.CollisionDetector:
        ...
    def getName(self) -> str:
        ...
    def getNumSimpleFrames(self) -> int:
        ...
    def getNumSkeletons(self) -> int:
        ...
    def getSimFrames(self) -> int:
        ...
    @typing.overload
    def getSimpleFrame(self, index: int) -> dartpy.dynamics.SimpleFrame:
        ...
    @typing.overload
    def getSimpleFrame(self, name: str) -> dartpy.dynamics.SimpleFrame:
        ...
    @typing.overload
    def getSkeleton(self, index: int) -> dartpy.dynamics.Skeleton:
        ...
    @typing.overload
    def getSkeleton(self, name: str) -> dartpy.dynamics.Skeleton:
        ...
    def getTime(self) -> float:
        ...
    def getTimeStep(self) -> float:
        ...
    def hasSkeleton(self, skeleton: dartpy.dynamics.Skeleton) -> bool:
        ...
    def removeAllSimpleFrames(self) -> ...:
        ...
    def removeAllSkeletons(self) -> ...:
        ...
    def removeSimpleFrame(self, frame: dartpy.dynamics.SimpleFrame) -> None:
        ...
    def removeSkeleton(self, skeleton: dartpy.dynamics.Skeleton) -> None:
        ...
    def reset(self) -> None:
        ...
    @typing.overload
    def setGravity(self, gravity: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> None:
        ...
    @typing.overload
    def setGravity(self, x: float, y: float, z: float) -> None:
        ...
    def setName(self, newName: str) -> str:
        ...
    @typing.overload
    def setCollisionDetector(self, collisionDetector: dartpy.collision.CollisionDetector) -> None:
        ...
    @typing.overload
    def setCollisionDetector(self, collisionDetectorType: CollisionDetectorType) -> None:
        ...
    def setTime(self, time: float) -> None:
        ...
    def setTimeStep(self, timeStep: float) -> None:
        ...
    @typing.overload
    def step(self) -> None:
        ...
    @typing.overload
    def step(self, resetCommand: bool) -> None:
        ...
    @property
    def onNameChanged(self) -> ...:
        ...
